<?php namespace Admin\Controller;
use Hdphp\Controller\Controller;
//分类管理控制器
class CateController extends CommonController{
	private $model;
	public function __construct(){
		parent::__construct();
		$this->model = new \Common\Model\Cate;
	}
	
	//第五、编辑分类
	public function edit(){
		//3.修改
		if(IS_POST){
			//如果调用的editData是真的话
			if($this->model->editData()) View::success('修改成功',U('index'));
			View::error($this->model->getError());
		}
		
		//1.获得旧数据
		$cid = Q('get.cid',0,'intval');
		$oldData = $this->model->where("cid={$cid}")->find();
		//sp($oldData);
		//分配旧数据
		View::with('oldData',$oldData);
		//2.处理所属分类（父级分类不能是自己和自己的子集）
		$cate = $this->model->getNoMy($cid);
		$cate = Data::tree($cate,'cname');
		View::with('cate',$cate);
		//sp($cate);
	    View::make();
	}
	
	//第四、删除分类（）
	public function del(){
		//获得要删除哪一条的cid
		$cid = Q('get.cid',0,'intval');
		
		//注！！这里比较绕，最好在本子上写一下就明白了
		
		//1.在删除当前分类之前获得当前分类的pid
		$data = $this->model->where("cid={$cid}")->find();
		$pid = $data['pid'];
		//2.找到要删除的当前的分类所有的子集，然后更改它们的pid为要删除分类的pid
		$this->model->where("pid={$cid}")->update(array('pid'=>$pid));
		//3.删除
		//DELETE FROM category WHERE cid={$cid};
		
		$this->model->where("cid={$cid}")->delete();
		
	    View::success('删除成功');
	}
	
	
	//第一、添加顶级分类
	public function add(){
		if(IS_POST){
			//调用模型里面的添加方法
			if($this->model->addData()){
				//View::success('添加成功',U('index'));
				echo json_encode(
					array(
						'status'=>1,
						'message'=>'添加成功'
					)
				);
				exit;
			}
			//框架里面错误信息提示
			//View::error($this->model->getErroe());
			
			//把数组转为json
			echo json_encode(
				array(
					'status'=>0,
					'message'=>$this->model->getError()
				)
			);
			exit;
		}
		View::make();
	}
	
	//第三，添加子级
	public function addSon(){
		//2.点击提交之后
		if(IS_POST){
			//调用模型里面的添加方法
			if($this->model->addData()){
				View::success('添加成功',U('index'));
			}
			View::error($this->model->getError());
		}
		
		//1.获得给哪一个分类添加的cid
		//接收get里面的cid，默认值为0，强制转整
		$cid = Q('get.cid',0,'intval');
			//SELECT cid,cname FROM category WHERE {$cid};
		$data = $this->model->where("cid={$cid}")->field('cid,cname')->find();
		//分配
		View::with('data',$data);
	    View::make();
	}
	
	//第二、显示分类页面
	public function index(){
		
		//S是框架里的方法、。这里是获取缓存
		$treeData = S('category');
		//如果没有缓存，那么查询数据库，重新设置缓存
		//如果$treeData 是空的（空就是假）if体不会执行，所以要取反才会执行
		if(!$treeData){
			//echo 1;//（这里打印一个1，如果没有缓存的话能打印出来，有缓存的话就不走if体，页面不会打印出1）
			//获得所有分类数据
			$data = $this->model->get();
			//让数据成树状形式显示
			$treeData = Data::tree($data,'cname','cid','pid');
		}
		//设置缓存
		S('category',$treeData);
		View::with('data',$treeData);
		
	    View::make();
	}
}



 ?>